#include <iostream>

using namespace std;
const int N=110;
const int VV=1e4+10;
int dp[VV];

int v[N],w[N];
int main()
{
	int n,V;
	cin>>n>>V;
	
	while(n--)
	{
		int s;
		cin>>s;
		for(int i=1;i<=s;i++)
		{
			cin>>v[i]>>w[i];
		}
		
		for(int i=V;i>=0;i--)
		{
			for(int j=1;j<=s;j++)
			{
				if(i>=v[j])
				{
					dp[i]=max(dp[i],dp[i-v[j]]+w[j]);
				}
			}
		}
	}
	cout<<dp[V]<<endl;
	return 0;
}
